package spark.graph
import org.apache.spark.graphx.{Edge, Graph, VertexId}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object MapGraphX {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("MapGraphX").setMaster("local")
    val sc = new SparkContext(conf)
    sc.setLogLevel("WARN")
    var users= sc.parallelize(Array((1L, ("Alice", 28)), (2L, ("Bob", 27)), (3L, ("Charlie", 65)), (4L, ("David", 42)), (5L, ("Ed", 55)), (6L, ("Fran", 50))))
    val relationships = sc.parallelize(Array(Edge(2L, 1L, 7), Edge(2L, 4L, 2), Edge(3L, 2L, 4), Edge(3L, 6L, 3), Edge(4L, 1L, 1), Edge(5L, 2L, 2), Edge(5L, 3L, 8), Edge(5L, 6L, 3)))
    val defaultUser = ("John Doe", 0)

    val graph = Graph(users, relationships, defaultUser)
    graph.vertices.collect.foreach(println(_))
    val graph1=graph.mapEdges(e => (e.attr,"newDefine"))
    graph1.edges.collect.foreach(println(_))
  }
}
